搭建python开发环境

详细记录搭建完整可用的python开发环境。

安装python解释器

windows

  1. python官网下载windows平台的安装包

    https://www.python.org/downloads/windows/

  2. 打开安装包后,一路回车.(勾选添加PATH全局变量)

Linux(cent os7)

  1. 安装gcc等必备程序包

    1
    yum install -y gcc gcc-c++ make automake vim
  2. 安装依赖的模块

    1
    yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
  3. 如果是3.7以上版本,还需要安装libffi-develf,否则会找不到’_cytpe’模块

    1
    yum install -y libffi-devel
  4. 获取python3.7源码包

    1
    wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
  5. 解压源码包

    1
    tar -zxvf Python-3.7.2.tgz
  6. 进入目录

    1
    cd Python-3.7.2
  7. 编译安装

    1
    2
    3
    ./configure --prefix='/urs/local/python3' --with-ssl
    make
    make install

    如果只想单个用户使用,可以把目录改为用户家目录下。安装完成后修改.bashrc文件

    1
    2
    alins python='/home/xiaoyao/python3/bin/pip3'
    alins pip='/home/xiaoyao/python3/bin/pip3'
    1
    source .bashrc
  1. 创建软链接

    1
    2
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  1. 老规矩,hello world试试环境是否有效。

mac os

没用过,暂时不写了,有需求以后再补充。

搭建虚拟环境

很多时候同一台主机上需要开发或运行不同的python项目。这些项目可能会用到不同版本的python解释器,也可能用到同一个第三方库的不同版本。这时就需要用到虚拟环境来隔离各个项目。

常用的虚拟环境如下:

virtualenv

  • 第三方包,需要手动安装

    pip install virtualenv

  • 创建[指定版本的]虚拟环境

    virtualenv [-p PythonPath] envname

  • 激活虚拟环境

    source .env/bin/activate (unix/linux)

    .env/Scripts/activate (windows)

  • 查看当前环境已经安装的包

    pip freeze

  • 虚拟环境中安装第三方包

    pip install xxx

  • 退出虚拟环境

    deactivate

virtualenvwrapper

  • 第三方库,需要手动安装。

    pip install virtualenvwrapper [unix/linux]

    pip install virtualenvwrapper-win [windows]

  • 基本用法

    mkvitualenv envname

    decativate

    workon envname

    rmvirtualenv envname

    lsvirtualenv

    cdvirtualenv

  • 修改mkvirtualenv默认路径

    系统环境变量 WORKON_HOME –> 路径

  • 创建指定python版本的虚拟环境

    mkvirtualenv –python==解释器路径 envname

pipenv

  • 第三方库,需要手动安装。

    pip install pipenv

  • 命令行工具,基于virtualenv和pip

  • 以项目为单位隔离python环境,进而可以使用不同的python库版本

  • 自动管理所安装python库及其依赖的其他库

  • 主要包含了Pipfile、pip、click、requests和virtualenv。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。

  • 基本理念

    1. Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
    2. 一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分。
    3. 提供版本锁支持,存为 Pipfile.lock
  • 原理:用Pipfile和Pipfile.lock来管理虚拟环境,两个文件共同表达了虚拟环境。

    Pipfile:记录虚拟环境的信息,尤其是python库。维护信息为主,记录有哪些库,不记录版本。

    Pipfile.lock:锁定python库版本,记录当前的开发版本

  • 使用步骤

    1. 创建一个文件夹,作为工程/项目的根目录

      1
      2
      mkdir mypjt
      cd mypjt
    2. 建立虚拟环境

      1
      2
      3
      pipenv --three  # 建立python3环境
      pipenv --two # 建立python2环境
      pipenv --python 3.7 # 建立python3.7虚拟环境
    3. 进入虚拟环境的命令行

      1
      pipenv shell
    4. 为虚拟环境添加第三方库

      1
      pipenv install jieba
    5. 展示虚拟环境中的库依赖

      1
      pipenv graph
    6. 生成Pipfile.lock文件

      1
      pipenv lock
    7. 查看当前虚拟环境

      1
      pipenv --venv
    8. 在虚拟环境中执行程序

      1
      pipenv run python a.py
    9. 退出虚拟环境

      1
      exit
  • 参考:https://zhuanlan.zhihu.com/p/32913361

  • 参考:http://www.jetbrains.com/help/pycharm/pipenv.html

在哪里编辑&运行python代码?

  • 命令行交互式窗口 repo

    在CMD或shell中输入python或python3敲回车就可以直接进入repo。

    启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。

    写过的代码没法保存、修改

  • 文本编辑器+python解释器

    • notepad++
    • vim & emacs
    • sublime text
    • atom
    • visual studio code

    将代码写入一个文件中,然后调用python解释器来运行脚本。

  • IDLE

    python自带

    同时提供交互式环境和文件式环境

    | 快捷键 | 含义 |
    | —— | ——————————- |
    | CTRL+N | 在IDLE交互界面下,新建文件式环境 |
    | CTRL+Q | 退出IDLE |
    | ALT+3 | 注释选定文本 |
    | ALT+4 | 解除注释 |
    | ALT+Q | 格式化代码 |
    | F5 | 执行当前文件 |

  • IDE

    • pycharm
    • visual studio
    • eclipse + pydev
    • anaconda + spyder